1. Field of the Invention
The invention relates to a family of complex systems with a shared architecture.
Such a family of complex systems is known from the article ‘Creating architectures with building blocks’ by F. J. van deer Linden and J. K. Miller in IEEE Software 12(1995)51–60, which is hereby incorporated by reference as background material. As described in the article, rather than creating a single product, a product family are based on a general understanding of product variations rather than precise product definitions, which are not available from the beginning. The objective is to enable people who are not experts in the problem domain to configure concrete products according to a part list. In order to create a parts list, both hardware and software components must be pre-manufactured and place in an archive, ready for use. The system is constructed along three design dimensions covered by the system architecture: structure, aspects and behavior. The structure determines the system's decomposition into parts. Aspects model the functional decomposition of the system. Behavior deals with processing that place within the system. In particular, the structure is considered the most important and is organized into four layers, or subsystems. These subsystems are composed of software modules that are building blocks and comprise the basic software entities in the system architecture. Building blocks, although being software, resemble hardware components by being pre-manufactured components. Each building block resides in a particular layer and imports building blocks from lower layers. Thus, one can build different systems using the same collection of lower layer building blocks. For configurability purposes, when a card type is added or removed, the corresponding control software must be adapted to the new situation, such as by adding or removing building blocks.
A shared family architecture is based upon a skeleton of generic building blocks of software, that are present in most or all of the systems in a particular family. As disclosed in “Composing Product Families from Reusable Components” by F. L. van deer Linden and J. K. Miller in IEEE Software 0-7803-2531-1/95, pages 35–40 (IEEE 1995), which is herein incorporated by reference as background material, each family may have a large variety of s systems, with each particular variety being adapted to certain user needs blocks that forms a system family and the relationship between the building blocks are determined. The basic architecture of the family includes generic building blocks that define abstract behavior, and their mutual relationships. With regard to software components, just as hardware boards can be plugged into a system board without much detailed know-how, the software is pluggable too. The software should consist of plug-in units that extend the system by some meaningful functionality, also referred to as a service, and the hardware configurability imposes a minimum condition for the configurability of the software components. A component framework is a skeleton of software architecture that can receive plug in software components providing one or more functions, also referred to as services. The component framework/skeleton defines roles, aka protocols including interfaces through which the services of the plug-in software components can be accessed.
2. Description of the Related Art
The known family of complex systems is in fact a family of telecommunications switching systems. The family members have a common software architecture. The common software architecture enables software development and testing to be shared among family members.